import 'package:hj_crm/entity/perms_menu.dart';

class PermsCheck {
  /// 权限列表
  static Set<String> permsSet = {};

  static void handlePermsMenu(PermsMenu permsMenu) {
    permsMenu.perms?.forEach((element) {
      if (element.contains(",")) {
        permsSet.addAll(element.split(","));
      } else {
        permsSet.add(element);
      }
    });
  }

  static bool _checkPerms(String perms) {
    return permsSet.contains(perms);
  }

  static void clear() {
    permsSet.clear();
  }

  /// 新增用户
  static bool customerAdd() => _checkPerms("content:customer:add");

  /// 编辑用户
  static bool customerUpdate() => _checkPerms("content:customer:update");

  /// 删除用户
  static bool customerDelete() => _checkPerms("content:customer:delete");

  /// 用户订单
  static bool customerOrderPage() => _checkPerms("content:customerOrder:page");

  /// 新增用户订单
  static bool customerOrderAdd() => _checkPerms("content:customerOrder:add");

  /// 删除用户订单
  static bool customerOrderDelete() => _checkPerms("content:customerOrder:delete");

  /// 参会情况
  static bool customerConferencePage() => _checkPerms("content:customerConference:page");

  /// 新增参会情况
  static bool customerConferenceAdd() => _checkPerms("content:customerConference:add");

  /// 删除参会情况
  static bool customerConferenceDelete() => _checkPerms("content:customerConference:delete");

  /// 出库管理
  static bool userDeliverPage() => _checkPerms("content:userDeliver:page");

  /// 新增出库记录
  static bool userDeliverAdd() => _checkPerms("content:userDeliver:add");

  /// 删除出库记录
  static bool userDeliverDelete() => _checkPerms("content:userDeliver:delete");

//=========================================================================================
  /// 新增客户
  static bool distributorAdd() => _checkPerms("content:customerInfo:add");

  /// 编辑客户
  static bool distributorUpdate() => _checkPerms("content:customerInfo:update");

  /// 删除客户
  static bool distributorDelete() => _checkPerms("content:customerInfo:delete");

  /// 进货情况
  static bool distributorPurchasePage() => _checkPerms("content:customerInfo:purchase:page");

  /// 新增进货情况
  static bool distributorPurchaseAdd() => _checkPerms("content:customerInfo:purchase:add");

  /// 删除进货情况
  static bool distributorPurchaseDelete() => _checkPerms("content:customerInfo:purchase:delete");

  /// 协销情况
  static bool distributorAssistPage() => _checkPerms("content:customerInfo:assist:page");

  /// 新增协销情况
  static bool distributorAssistAdd() => _checkPerms("content:customerInfo:assist:add");

  /// 删除协销情况
  static bool distributorAssistDelete() => _checkPerms("content:customerInfo:assist:delete");

  /// 出库情况
  static bool distributorOrderPage() => _checkPerms("content:customerDeliverOrder:page");

  /// 新增出库记录
  static bool distributorOrderAdd() => _checkPerms("content:customerDeliverOrder:add");

  /// 删除出库记录
  static bool distributorOrderDelete() => _checkPerms("content:customerDeliverOrder:delete");

  /// 参会情况
  static bool distributorConferencePage() => _checkPerms("content:customerInfo:conference:page");

  /// 新增参会情况
  static bool distributorConferenceAdd() => _checkPerms("content:customerInfo:conference:add");

  /// 删除参会情况
  static bool distributorConferenceDelete() =>
      _checkPerms("content:customerInfo:conference:delete");
}



/*
//   static final appPerms = [
//     "content:customer:add", //用户列表新增
//     "content:customer:update", //用户列表编辑
//     "content:customer:delete", //用户列表删除

//     "content:customerOrder:page", //用户列表 用户订单
//     "content:customerOrder:add", //用户列表 用户订单 新增
//     "content:customerOrder:delete", //用户列表 用户订单 删除

//     "content:customerConference:page", //用户列表 参会情况
//     "content:customerConference:add", //用户列表 参会情况 新增
//     "content:customerConference:delete", //用户列表 参会情况 删除

//     "content:userDeliver:page", //用户列表 出库管理
//     "content:userDeliver:add", //用户列表 出库记录 新增
//     "content:userDeliver:delete", //用户列表 出库记录 删除
// //===========================================================
//     "content:customerInfo:add", //客户列表 新增客户
//     "content:customerInfo:update", //客户列表 编辑客户
//     "content:customerInfo:delete", //客户列表 删除客户

//     "content:customerInfo:purchase:page", //客户列表 进货情况
//     "content:customerInfo:purchase:add", //客户列表 进货情况 新增
//     "content:customerInfo:purchase:delete", //客户列表 进货情况 删除

//     "content:customerInfo:assist:delete", //客户列表 协销情况 删除
//     "content:customerInfo:assist:page", //协销情况
//     "content:customerInfo:assist:add", //客户列表 协销情况 新增

//     "content:customerDeliverOrder:page", //客户列表出库情况
//     "content:customerDeliverOrder:add", //客户列表 出库记录 新增
//     "content:customerDeliverOrder:delete", //客户列表 出库记录 删除

//     "content:customerInfo:conference:page", //客户列表参会情况
//     "content:customerInfo:conference:add", //客户列表 参会 新增
//     "content:customerInfo:conference:delete", //客户列表 参会 删除
//   ];

  // static bool _checkPermsList(List<String> perms) {
  //   return perms.every((element) => appPerms.contains(element));
  // }
*/

/*
/// 用户列表
  static final userListPerms = [
    "content:customer:add", //用户列表新增
    "content:customer:update", //用户列表编辑
    "content:customer:delete", //用户列表删除

    "content:customerOrder:page", //用户列表 用户订单
    "content:customerOrder:add", //用户列表 用户订单 新增
    "content:customerOrder:delete", //用户列表 用户订单 删除

    "content:customerConference:page", //用户列表 参会情况
    "content:customerConference:add", //用户列表 参会情况 新增
    "content:customerConference:delete", //用户列表 参会情况 删除

    "content:userDeliver:page", //用户列表 出库管理
    "content:userDeliver:add", //用户列表 出库记录 新增
    "content:userDeliver:delete", //用户列表 出库记录 删除
  ];

  /// 客户列表
  static final customerListPerms = [
    "content:customerInfo:add", //客户列表 新增客户
    "content:customerInfo:update", //客户列表 编辑客户
    "content:customerInfo:delete", //客户列表 删除客户

    "content:customerInfo:purchase:page", //客户列表 进货情况
    "content:customerInfo:purchase:add", //客户列表 进货情况 新增
    "content:customerInfo:purchase:delete", //客户列表 进货情况 删除

    "content:customerInfo:assist:delete", //客户列表 协销情况 删除
    "content:customerInfo:assist:page", //协销情况
    "content:customerInfo:assist:add", //客户列表 协销情况 新增

    "content:customerDeliverOrder:page", //客户列表出库情况
    "content:customerDeliverOrder:add", //客户列表 出库记录 新增
    "content:customerDeliverOrder:delete", //客户列表 出库记录 删除

    "content:customerInfo:conference:page", //客户列表参会情况
    "content:customerInfo:conference:add", //客户列表 参会 新增
    "content:customerInfo:conference:delete", //客户列表 参会 删除
  ];
*/